package com.ynet.eq.haiqing.controller;

import org.apache.activemq.command.ActiveMQQueue;
import org.apache.activemq.command.ActiveMQTopic;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import javax.jms.Queue;
import javax.jms.Topic;

/**
 * @author 胡超雄
 * @date 2021/6/23 10:04
 * @desc  生产者
 */
@RestController
public class ProducerController {

    //注入点对点的模式（Queue模式）
//    @Autowired
//    private Queue queue;

    //注入订阅模式（Topic）的消息
    @Autowired
    private Topic topic;

    //注入springboot封装的工具类
    @Autowired
    private JmsMessagingTemplate jms;


    /**
     * 点对点模式（queue）模式发消息
     * @param text
     */
    @GetMapping("/queueSend")
    public String queueSend(String text) {
        System.out.println("生成者准备干活儿了");
        System.out.println("queueSend准备发送消息了:"+text);
        ActiveMQQueue queue = new ActiveMQQueue("mqtt/face/1747");


        jms.convertAndSend(queue, text);

        return "success";
    }

    /**
     * 订阅模式（topic）发送消息
     * @param
     * @return
     */
    @RequestMapping("/topicSend")
    public String topicSend(String text){

        ActiveMQTopic topic = new ActiveMQTopic("mqtt/face/1716896");
        jms.convertAndSend(topic,text);
        return "topic 发送成功1747";
    }



}
